local CommonOHOH = _G.CommonOHOH;
local M = CommonOHOH.class.new(script, CommonOHOH.files.BaseObject());
local IsClient = game:GetService("RunService"):IsClient();
local ConnectClass=_G.CommonOHOH.load.Connect();



function M.new(...)
	return M(...);
end;

function M.ctor(self,player,desId,value,dataStore)--构造函数

    self.player=player
    --描述id
    self.desId=desId
    self.value=value
    self.isDone=false --是否达成条件
    self.IsInAFK=false --是否进入AFK
    self.isUsed=false  --是否使用
    self.DataStore=dataStore
    self.IsClient=IsClient
    self.UpdateEvent=_G.CommonOHOH.load.Connect().new()

    self.UpdateEvent:Connect(function()
        self:UpdateUseState()
    end)

    self.player.InAFKEvent:Connect(function()
        self:InAFK()
    end)
    self.player.OutAFKEvent:Connect(function()
        self:OutAFK()
    end)
    
    self:SubInit()
end;

function M.dtor(self)--析构函数

    self.UpdateEvent:dtor()

    M.super.dtor(self);
end;

function M.SubInit(self)


end


function M.InAFK(self)
    self.IsInAFK=true
    self:UpdateUseState()
end



function M.OutAFK(self)
    self.IsInAFK=false
    self:UpdateUseState()

end

--更新使用状态
function M.UpdateUseState(self)
    if not self.isDone then
        return
    end
    if self.IsInAFK and (not self.isUsed) then
        self.isUsed=true
        self:Use()
      
    elseif self.isUsed then
        self.isUsed=false
        self:RemoveUse()
    end

end

--当玩家进入然后退出afk区域，移除效果
function M.RemoveUse(self)

end

--当玩家进入afk区域，添加效果
function M.Use(self)

end

--获取描述（公开）
function M.GetDes(self)
    return _G.LanguageHelper:GetText(self.desId)
end
-- 获取数值str（公开）
function M.GetValueStr(self)
    return "+"..self.value
end;

--是否完成（公开）
function M.IsComplete(self)
    return  self.isDone
end


return M